package ec.edu.ups.rhc.controlador;

import java.util.List;
import java.util.logging.Logger;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;

import org.primefaces.event.RowEditEvent;

import ec.edu.ups.rhc.datos.ProveedorDAO;
import ec.edu.ups.rhc.modelo.Proveedor;


@ManagedBean
@ViewScoped
public class ProveedoresBean {

	@Inject	private ProveedorDAO dao;
	@Inject FacesContext context;
	
	private Proveedor proveedor;
	private List<Proveedor> listaProveedores;
	
	
	
	/**
	 * Método que se ejecuta posterior a la creación(instancia) del JavaBean 
	 */
	@PostConstruct
	public void init()
	{
		proveedor=new Proveedor();
		listaProveedores=dao.listar();
	}

	/**
	 * Encapsulacion
	 */
	public Proveedor getProveedor() {return proveedor;}
	public void setProveedor(Proveedor proveedor) {this.proveedor = proveedor;}

	public List<Proveedor> getListaProveedores() {	return listaProveedores;}
	public void setListaProveedores(List<Proveedor> listaProveedores) {this.listaProveedores = listaProveedores;	}
	

	/**
	 * Action controllers
	 */
	public String guardar()
	{
		dao.insert(proveedor);
		context.addMessage(null, new FacesMessage("Guardado exitoso", "Guardado exitoso") );
		return null;
	}	
	public String actualizar()
	{
		dao.actualizar(proveedor);
		context.addMessage(null, new FacesMessage("Edicion exitosa", "Edicion exitosa") );
		return null;
	}
	public void editListener(RowEditEvent event) {
		proveedor = (Proveedor) event.getObject();
		this.actualizar();
	}
	
}
